Oracle11GR2 RAC ASM for AIX6.1.4 完全安装手册
目录
1 主机规划
1.1 硬件环境
1.2 软件环境
1.3 RAC拓朴图
1.4 网络规划
1.4.1 IP地址要求
1.4.2 DNS服务器(可选)
1.5 安装目录规划
1.6 存储规划
1.6.1 grid、ASM安装目录
1.6.2 Clusterware安装目录
1.6.3 OCR、VOTE存储规划
1.6.4 数据库数据文件存储规划
2 安装准备
2.1 系统硬件环境检查
2.1.1 Oracle11gR2 RAC最低安装要求:
2.1.2 验证方法:
2.1.2.1 确认内存大小
2.1.2.2 确认SWAP空间,最少4G
2.1.2.3 确认/tmp大于1.5GB和/oracle目录空间15GB
2.1.2.4 确认系统结构
2.1.2.5 确认系统CPU个数和主频
2.2 安装操作系统软件包
2.2.1 安装FILESETS
2.2.2 安装PATCHES
2.3 配置IP地址
2.4 修改/etc/hosts文件
2.5 文件系统准备
2.5.1 方法1:使用命令创建
2.5.2 方法2:使用smit创建
2.6 调整系统参数
2.6.1 打开异步IO
2.6.2 调整虚拟内存管理
2.6.3 调整maxuproc(系统最大进程数)和ncargs(系统块大小)参数
2.6.4 调整SHELL限制
2.6.5 确认网络配置参数
2.7 创建用户、组
2.7.1 要求
2.7.2 创建命令
2.7.3 修改用户属性
2.7.3.1 grid用户
2.7.3.2 oracle用户
2.7.3.3 root用户
2.8 用户环境变量设置
2.8.1 grid用户
2.8.2 oracle用户
2.9 用户shell限制
2.10 创建安装目录并修改权限
2.11 SSH信任关系设置(可选)
2.11.1 首先在两台机器上安装好OpenSSH软件;
2.11.2 然后在grid安装中选择自动配置SSH双机信任关系
2.11.2.1 方法1
2.11.2.2 方法2
2.12 配置磁盘设备
2.12.1 设置磁盘属性
2.12.2 修改用于数据库存储的PV的属主
2.12.3 修改用于数据库存储的PV的权限
2.12.4 清除PVID
2.13 配置NTP服务(可选)
3 安装Grid
3.1 Grid安装前检查
3.2 执行rootpre.sh
3.3 安装grid
3.4 Clusterware安装校验
4 安装Database
5 创建ASM磁盘组
6 DBCA创建数据库
7 安装完成后
7.1 备份root.sh
7.2 重新编译全部PL/SQL modules
7.3 备份spfile文件
7.4 RAC集群系统维护命令
7.5 启动和关闭集群系统命令
7.5.1 启动集群件和集群数据库
7.5.2 关闭RAC集群数据库和集群件
1 主机规划
1.1 硬件环境
服务器:两台IBM P630 16C(Power6 CPU)/32GB;
存储:一台DS4000存储;
1.2 软件环境
数据库:
aix.ppc64_11gR2_database_1of2.zip
aix.ppc64_11gR2_database_2of2.zip、
集群件(10G中的clusterware):
aix.ppc64_11gR2_grid.zip这三个包
操作系统:
AIX6.1
原来版本是6100-01
升级后为:6100-04-01-0944
注意:解压时aix.ppc64_11gR2_database_1of2.zip、aix.ppc64_11gR2_database_2of2.zip这两个包要解到同一个目录下,aix.ppc64_11gR2_grid.zip包解到另一个不同的目录下。
1.3 RAC拓朴图(略)
1.4 网络规划
1.4.1 IP地址要求
每个节点一个public IP
每个节点一个public VIP
每个节点一个private IP
一个用于集群的SCAN名称和一到三个和public IP同网段的IP,本处用一个
public IP,VIP和private IP写入/etc/hosts文件,scan名注册到DNS
配置DNS搜索域和解析顺序
Oracle 11gR2 RAC中对网络的要求与10g稍有些不同,在Oracle 11gR2 RAC中引入了SCAN的概念。SCAN全称是Single Client Access Name ,它是Oracle RAC 11gR2版本的一个新特性。它为需要访问Oracle集群数据的客户端提供一个简单名字。它的好处是如果你使用SCAN当你增长或踢除集群中的节点时客户端不需要做任何改变,这一点在三层架构应用系统中(数据库-应用服务器-客户机)优势明显。使用单个名字去访问集群允计客户端使用EZConnect 客户端和简单JDBC thin URL去访问运行在集群中的任何数据库,而不用管在集群中那个或那些服务器(或叫实例)是Active的。
配置好固定IP(public),ORACLE的私有IP(priv),和VIP,尤其要注意的是:两台机器需配置对应关系一致的IP与网卡。如:
注:SCAN IP,有的资料说是1-3个,而有的资料说是必须要3个,未证实。
上规划表中7、8项二选一即可,如果没有DNS服务器,也可以使用/etc/hosts解析scan单IP
ASM规划
若是需要捆绑网卡做心跳,可以使用:
#smit etherchannel
1.4.2 DNS服务器(可选)
前面说到在Oracle 11gR2 RAC中引入了SCAN的概念,而ORACLE推荐使用DNS解析的方法来实现SCAN,这就要求网络中有一台DNS服务器用来解析SCAN地址。
如果你网络中没有专用的DNS服务器,那么也可以用现有的数据库服务器兼作DNS服务器,但是不推荐这样做,因为一旦这台机器当机了,DNS就无法解析,可以导致监听的异步常。
在AIX中搭建DNS服务器的方法在后文中将讲到。
这里使用/etc/hosts来解析scan
1.5 安装目录规划
安装目录规划原则:建立/u01文件系统用来安装grid、datbase程序。程序都安装在/u01/app下面,对于grid与database分别建立不同的目录,分配不同的权限。其中grid的ORACLE_BASE和ORACLE_HOME建议安装在不同的目录下,具体规划如下:
新建30G lv:oralv
新建文件系统,挂载点:/u01
grid base目录:/u01/app/grid #grid用户的ORACLE_BASE
grid asm安装目录:/u01/app/11.2/grid #grid用户的ORACLE_HOME,也即是安装时的software location
Oracle base目录:/u01/app/oracle #oracle用户的ORACLE_BASE
注:此规划为后来总结,本实验中与此略有出入。Grid用户的ORACLE_BASE、ORACLE_HOME都需要手工创建。Oracle用户只创建ORACLE_BASE目录即可。
1.6 存储规划
1.6.1 grid、ASM安装目录
在Oracle 11gR2中grid和ASM是安装在同一目录下的,我们将grid和ASM安装在/u01/grid目录下,为JFS2文件系统,大小建立为30GB以上。本次示例25G
1.6.2 Clusterware安装目录
我们将Clusterware安装在/u01/db目录下。
1.6.3 OCR、VOTE存储规划
在我们的方案中规划如下:
OCR hdisk6 容量:5G
VOTE hdisk5 容量:4G
DATA hdisk2、4 容量:50G、40G
1.6.4 数据库数据文件存储规划
规划使用2个50GB和40G的阵列盘用来存放数据库数据文件文件,这2块盘在ASM中做成external磁盘组。
2 安装准备
2.1 系统硬件环境检查
2.1.1 Oracle11gR2 RAC最低安装要求:
内存:
安装grid infrastructure最少需要1.5GB的内存,
安装grid infrastructure和RAC最少需要2.5GB的内存
swap:最少需要4GB,有的资料介绍最少1.5G,不过安装环境检查时显示需要4G。
temp:推荐10G,可以将安装文件上传至/tmp目录下,最少1GB
安装目录:grid infrastructure+ASM+Clusterware最少需要12GB
操作系统:
AIX 6.1 TL 01 SP1 ("6100-01-01), 64-bit kernel
2.1.2 验证方法:
2.1.2.1 确认内存大小
# lsattr -El sys0 -a realmem
realmem 4194304 Amount of usable physical memory in Kbytes False
2.1.2.2 确认SWAP空间,最少4G。
# lsps -a
若不够4G,需要增加PPS数。本系统一个PPS为128M,所以增加20个,使swap达到4G。PPS大小可以通过lsvg rootvg查看。
# chps -s 20 hd6
# lsps -a
2.1.2.3 确认/tmp大于1.5GB和/oracle目录空间15GB
推荐oracle安装目录在25GB左右,grid infrastructure+ASM安装在/oracle/grid目录下,其中Oracle11g Clusterware安装在/oracle/db目录下.
chfs –a size=5G /tmp
2.1.2.4 确认系统结构
# getconf HARDWARE_BITMODE
64
2.1.2.5 确认系统CPU个数和主频:
# lsdev -C | grep proc
proc0 Available 00-00 Processor
proc1 Available 00-01 Processor
# lsattr -El proc0
2.2 安装操作系统软件包
2.2.1 安装FILESETS
AIX 6.1需要安装如下软件包:
bos.adt.base
bos.adt.lib
bos.adt.libm
bos.perf.libperfstat 6.1.2.1 or later
bos.perf.perfstat
bos.perf.proctools
rsct.basic.rte
rsct.compat.clients.rte
xlC.aix61.rte 10.1.0.0 (or later)
AIX 5.3需要安装如下软件包:
bos.adt.base
bos.adt.lib
bos.adt.libm
bos.perf.libperfstat 5.3.9.0 or later
bos.perf.perfstat
bos.perf.proctools
rsct.basic.rte
rsct.compat.clients.rte
xlC.aix50.rte 10.1.0.0 (or later)
以上filesets安装与否可以用命令lslpp -l进行检查确认。默认安装是不全的,需要手工进行添加。同时系统盘的版本与上述也有差异,安装尝试。
2.2.2 安装PATCHES
AIX版本要求如下
AIX 5L V5.3 TL 09 SP1 ("5300-09-01"), 64 bit kernel或以上版本
AIX 6.1 TL 02 SP1 ("6100-02-01), 64-bit kernel或以上版本
检查方法:
# oslevel -r
6100-03
其它单个补丁的要求如下:
AIX 6L installations All AIX 6L 6.1 installations Authorized Problem Analysis
Reports (APARs) for AIX 5L v. 5.3 ML06, and the following AIX
fixes:
IZ41855
IZ51456
IZ52319
AIX 5L installations All AIX 5L 5.3 installations Authorized Problem Analysis
Reports (APARs) for AIX 5L v. 5.3 ML06, and the following AIX
fixes:
IZ42940
IZ49516
IZ52331
验证:#/usr/sbin/instfix -i -k IZ41855
安装补丁:
由于6100-04不需要任何补丁,所以我们将系统升级到6100-04(但是安装grid的时候还是出现3个包未安装提示)
1、 从IBM官网上下载6100-04-00-0943
2、 将补丁文件上传至/tmp/tools下
3、 smit update_all
选择不提交,保存被覆盖的文件,可以回滚操作,接受许可协议
COMMIT software updates? No
SAVE replaced files? yes
ACCEPT new license agreements? Yes
升级完后查看:
# oslevel -s
6100-04-01-0944
2.3 配置IP地址
根据前面的规划先配置要两台机器的IP地址,就是ibmdb1、ibmdb1-priv和ibmdb2、ibmdb2-priv这四个IP地址。
同样配置几块网卡的IP地址,基中服务地址要配置网关,网关地址为:192.168.17.254。
2.4 修改/etc/hosts文件
修改每个节点上的/etc/hosts文件。
127.0.0.1 loopback localhost # loopback (lo0) name/address
192.168.17.237 ibmdb1
192.168.17.236 ibmdb1-vip
10.10.10.237 ibmdb1-priv
192.168.17.239 ibmdb2
192.168.17.238 ibmdb2-vip
10.10.10.239 ibmdb2-priv
192.168.17.229 scan
注意:如果你的环境里不具备DNS服务器,那么SCAN地址解析可以通过/etc/hosts或GNS来实现,这需要在你的所有数据库主机的host文件里添加一个SCAN地址,并且这个地址的解析名不要超过16个字符,超过的话,oracle只会解析前16个字符。本例中我们通过/etc/hosts来解析scan。
2.5 文件系统准备
创建/u01文件系统
2.5.1 方法1:使用命令创建
1、mkdir /u01
2、建立一个lv mklv –t jfs2 –y u01lv rootvg 200 #200个pps,可视需要而定
3、建立一个文件系统 crfs –v jfs2 -d /dev/u01lv -m /u01
4、mount文件系统 mount /u01
5、使用smit chfs,修改/u01启动自动mount。
创建/oracle文件系统
1、mkdir /oracle
2、建立一个lv mklv –t jfs2 –y u01lv rootvg 200 #200个pps,可视需要而定
3、建立一个文件系统 crfs –v jfs2 -d /dev/u01lv -m /u01
4、mount文件系统 mount /u01
5、使用smit chfs,修改/u01启动自动mount。
2.5.2 方法2:使用smit创建
Smit mklv:
Smit fs:
在上图中,由于我们已经建议好了LV,所以选择如图。
在上图中,我们设置挂载点、是否自启动。
完成后,mount /u01
挂载/u01文件系统。
2.6 调整系统参数
2.6.1 打开异步IO
AIX5.3中,在安装grid软件前执行rootpre.sh会自动打开异步IO服务,在AIX6.1中默认异步IO服务是打开的。推荐的aio_maxreqs值为 64k (65536),检查方法如下:
AIX 6.1
# ioo -o aio_maxreqs
aio_maxreqs = 65536
AIX 5.3
# lsattr -El aio0 -a maxreqs
maxreqs 65536 Maximum number of REQUESTS True
查看当前启动了多少异步IO进程的方法:
# ps -ek|grep -v grep|grep –v posix_aioserver|grep -c aioserver
调整aio_maxservers和aio_minservers为合适的值
原则:
1、 调整maxservers的值为10倍的磁盘数量,但是不要超赤80
2、 在高i/o的时间周期监控AIO的性能情况,如果所有的AIO服务进程都已经启动,那么增大maxservers的值。但是,过多的AIO进程也会增加系统的负载
3、 监控AIO服务进程的使用情况:
# ps -ek|grep -v grep|grep –v posix_aioserver|grep -c aioserver
4、 调整参数
Ioo –po aio_maxservers=80 / ioo –po aio_minservers=40
2.6.2 调整虚拟内存管理
Oracle推存使用vmo命令去调优虚拟内存管理,参数推荐如下:
命令如下:
vmo -p -o minperm%=3
vmo -p -o maxperm%=90
vmo -p -o maxclient%=90
vmo -p -o lru_file_repage=0
vmo -p -o strict_maxclient=1
vmo -p -o strict_maxperm=0
You must restart the system for these changes to take effect.
2.6.3 调整maxuproc(系统最大进程数)和ncargs(系统块大小)参数
# chdev -l sys0 -a maxuproc=16384
sys0 changed
也可以使用:smitty chgsys修改“Maximum number of PROCESSES allowed per user”
修改完成后查看:
# lsattr -El sys0 -a maxuproc
maxuproc 16384 Maximum number of PROCESSES allowed per user True
# chdev -l sys0 -a ncargs=256
sys0 changed
2.6.4 调整SHELL限制
1. 在 /etc/security/limits文件中增加如下行:
default:
fsize = -1
core = 2097151
cpu = -1
data = -1
rss = -1
stack = -1
nofiles = -1
2.6.5 确认网络配置参数
用# /usr/sbin/no -a | more来查看网络参数是否满足下面的要求
PARAMETER RECOMMENDED VALUE
ipqmaxlen 512
rfc1323 1
sb_max 1500000
tcp_recvspace 65536
tcp_sendspace 65536
udp_recvspace 1351680 这个值应该是udp_sendspace的10倍,但是必须小于sb_max
udp_sendspace 135168 这个值至少应该是4K+(db_block_size*db_multiblock_read_count)的大小
修改命令
no -r -o ipqmaxlen=521
no -p -o rfc1323=1
no -p -o sb_max=1500000
no -p -o tcp_recvspace=65536
no -p -o tcp_sendspace=65536
no -p -o udp_recvspace=1351680
no -p -o udp_sendspace=13516
在修改前需要先查看系统设置的兼容性:
# lsattr -El sys0 -a pre520tune
1、输出如:
pre520tune disable Pre-520 tuning compatibility mode True
说明是不兼容方式,这样就可以用上面的方式调整:
2、如果是compatibility模式,则:
# /usr/sbin/no -o parameter_name=value
并且编辑文件/etc/rc.net加入下面内容:
if [ -f /usr/sbin/no ] ; then
/usr/sbin/no -o udp_sendspace=65536
/usr/sbin/no -o udp_recvspace=655360
/usr/sbin/no -o tcp_sendspace=65536
/usr/sbin/no -o tcp_recvspace=65536
/usr/sbin/no -o rfc1323=1
/usr/sbin/no -o sb_max=2*655360
/usr/sbin/no -o ipqmaxlen=512
fi
2.7 创建用户、组
2.7.1 要求
本次安装我们就规划了一个组,但是规划两个用户,一个用于管理ASM实例,另一个用于管理DB实例。
创建一个组:
dba
创建二个用户:
grid:主要用与安装grid、ASM,管理ASM实例,grid用户主组为dba,属组为:dba。
oracle:要用与安装Clusterware,管理db实例,oracle用户主组为dba,属组为:dba。
2.7.2 创建命令:
# mkgroup -'A' id='1000' adms='root' dba
# mkuser id='1000' pgrp='dba' groups='dba' home='/home/grid' grid
# mkuser id='1100' pgrp='dba' groups='dba' home='/home/oracle' oracle
!注意保持双机用户与组的ID的一致。
2.7.3 修改用户属性
2.7.3.1 grid用户
1、在两台主机上要保证grid用户具有以下能力:
CAP_NUMA_ATTACH, CAP_BYPASS_RAC_VMM, and CAP_PROPAGATE
查看grid用户能力:
#lsuser -a capabilities grid
增加grid用户能力:
# chuser capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE grid
2、设置grid用户密码:
#passwd grid
3、在两台主机上最消grid用户shell限制
可以通过smit chuser去修改grid用户限制,或直接修改/etc/security/limits 文件,具体参数如下:
default:
fsize = -1
core = 2097151
cpu = -1
data = -1
rss = -1
stack = -1
nofiles = -1
2.7.3.2 oracle用户
1、在两台主机上要保证oracle用户具有以下能力:
CAP_NUMA_ATTACH, CAP_BYPASS_RAC_VMM, and CAP_PROPAGATE
查看oracle用户能力:
# lsuser -a capabilities oracle
增加oracle用户能力:
#chuser capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE oracle
2、设置oracle用户密码:
#passwd oracle
3、在两台主机上最消oracle用户shell限制
可以通过smit chuser去修改oracle用户限制,或直接修改/etc/security/limits 文件,具体参数如下:
default:
fsize = -1
core = 2097151
cpu = -1
data = -1
rss = -1
stack = -1
nofiles = -1
2.7.3.3 root用户
在两台主机上最消root用户shell限制,因为CRS进程(crsd)需要以root用户运行。
可以通过smit chuser去修改root用户限制,或直接修改/etc/security/limits 文件,具体参数如下:
default:
fsize = -1
core = 2097151
cpu = -1
data = -1
rss = -1
stack = -1
nofiles = -1
2.8 用户环境变量设置
2.8.1 grid用户
在两台服务器的的grid用户的.profile最后,增加如下内容:
umask 022
export ORACLE_BASE=/u01/app/grid #需手工创建
export ORACLE_HOME=/u01/app/11.2/grid #需手工创建
export ORACLE_SID=+ASM1 #节点2是+ASM2
export NLS_LANG=AMERICAN_AMERICA.UTF8
export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin
export ORACLE_PATH=${PATH}:$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS10=$ORACLE_HOME/nls/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
export PS1='hostname':'$PWD'"$
2.8.2 oracle用户
在两台服务器的的oracle用户的.profile最后,增加如下内容:
umask 022
export ORACLE_BASE=/u01/app/oracle #需手工创建
export ORACLE_HOME=$ORACLE_BASE/product/11.2
export ORACLE_SID=ytdb1
export ORACLE_UNQNAME=testdb
export NLS_LANG=AMERICAN_AMERICA.UTF8
export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin
export ORACLE_PATH=${PATH}:$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS10=$ORACLE_HOME/nls/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
export PS1='hostname':'$PWD'"$"
2.9 用户shell限制
更改root,grid,oracle用户的shell限制,要求如下:
fsize = -1
core = -1
cpu = -1
data = -1
rss = -1
stack = -1
nofiles = -1
更改命令:smit chuser
2.10 创建安装目录并修改权限
mkdir -p /u01/app/grid #grid用户的ORACLE_BASE
mkdir -p /u01/app/11.2/grid #grid用户的ORACLE_HOME
chown -R grid:dba /u01
mkdir -p /u01/app/oracle #oracle用户的ORACLE_BASE
chown -R oracle:dba /u01/app/oracle
chmod -R 755 /u01/
注意:如果grid与orcle安装在同一文件系统下面,如上,在进行权限修改的时候要注意顺序,先进行/u01赋权,再进行/u01/db赋权,否则会被覆盖。
2.11 SSH信任关系设置(可选)
SSH信任关系也可在grid安装时选择自动配置。
注意:Oracle11g R2 grid在AIX上自动配置ssh时会报错,因为Oracle调用的命令路径和AIX系统上命令实际路径不符,可以修改oracle安装程序的sshsetup.sh脚本,或按照oracle调用路径添加程序软连接,具体路径安装过程中Oracle会提示。
2.11.1 首先在两台机器上安装好OpenSSH软件;
具体安装方法本处不详述,需要下载openssh、openssl,安装时需先安装openssl,然后再安装openssh。
也可以通过AIX系统光盘,执行smitty install,选择所有ssh包安装。
安装完毕后可以检查:
# lslpp –l | grep ssh
2.11.2 然后在grid安装中选择自动配置SSH双机信任关系
2.11.2.1 方法1
修改/etc/ssh/sshd_config
将:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
前面的注释去掉。
利用命令:ssh-keygen生成key
全部选择默认的就可以 , 生成的private key和public Key会保存在 ~/.ssh目录下 .
注: 为了后面的访问方便, passphrase一行密码一般设置为空.
将2台机器的public key互相传给对方
可以有好几种方法: ftp , rcp , scp都可以 .这里我们通过FTP将两个节点的~/.ssh下的id_rsa、id_rsa.pub两个文件分别拷下来传至对方。由于同名,分别将其更改为id_rsa239、id_rsa239.pub、id_rsa237、id_rsa237.pub,为了区分,后面加上其IP标识。
建立authorized_keys文件
由于上面修改了sshd_config文件 , 其中一行为
AuthorizedKeysFile .ssh/authorized_keys
为认证读取文件的位置 .
我们采取默认的方式 , 在~/.ssh下touch一个authorized_keys文件.
touch authorized_keys
将传输过来的对方主机的pub key内容 ,追加到authorized_keys文件上,
Node1(192.168.17.237):
bash-3.00# cat id_rsa239.pub > authorized_keys
node2(192.168.17.239):
# cat id_rsa237.pub > authorized_keys
测试:
ssh 192.168.17.237
ssh 192.168.17.239
第一次登录会出现提示,输入yes后以后就不会了
2.11.2.2 方法2
以下两个节点都执行:
#su – grid
$mkdir –p ~/.ssh
$chmod 700 ~/.ssh
$/usr/bin/ssh-keygen -t rsa
提示输入密码时,保持为空,直接回车即可。
以下只在节点1上执行:
$ touch ~/.ssh/authorized_keys
$ ssh ibmdb1 cat ~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys
$ ssh ibmdb2 cat ~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys
$ scp ~/.ssh/authorized_keys ibmdb2:.ssh/authorized_keys
以下只在节点2上执行:
$ chmod 600 ~/.ssh/authorized_keys
配置完成后按方法1中测试方法进行测试。
2.12 配置磁盘设备
2.12.1 设置磁盘属性
该步骤若不做,在grid安装完成建立ASM时,第二个节点会找不到硬盘,同时加入不了群集。
检测:
lsattr -El hdisk2 | grep reserve_
查看一个即可
设置保持策略:
如果上面查看的结果是reserve_policy
chdev -l hdisk2 -a reserve_policy=no_reserve
chdev -l hdisk3 -a reserve_policy=no_reserve
chdev -l hdisk4 -a reserve_policy=no_reserve
chdev -l hdisk5 -a reserve_policy=no_reserve
chdev -l hdisk6 -a reserve_policy=no_reserve
如果上面查看的结果是reserve_lock
chdev -l hdisk2 -a reserve_lock=no
.。。
2.12.2 修改用于数据库存储的PV的属主
chown grid:dba /dev/rhdisk2
chown grid:dba /dev/rhdisk3
chown grid:dba /dev/rhdisk4
chown grid:dba /dev/rhdisk5
chown grid:dba /dev/rhdisk6
2.12.3 修改用于数据库存储的PV的权限
chmod 777 /dev/rhdisk2
chmod 777 /dev/rhdisk3
chmod 777 /dev/rhdisk4
chmod 777 /dev/rhdisk5
chmod 777 /dev/rhdisk6
如果出现两边盘符不一致,可使用软连接实现两边盘符的对应关系一致,如:
Ln –s /dev/rhdisk2 /ShareDisk/grid_lun1
..
Ln –s /dev/rhdisk6 /ShareDisk/data_asm1
…
2.12.4 清除PVID
查看LUN,如果已经有了PVID的话,需要进行清除。
chdev -l hdisk2 -a pv=clear
重复同样的操作,清除2-6所有LUN的PVID
2.13 配置NTP服务(可选)
Oracle 11g R2提供Cluster Time Synchronization Service(CTSS)集群时间同步服务,在没有NTP服务时,该功能可以保证所有RAC节点的时间保持一致。ASM可以作为统一的存储把Oracle Cluster Registry(OCR)和Voting disks统一安装在ASM磁盘上,不再需要单独安装集群文件系统了,11g第二版也不再支持裸设备了(之前可以把集群件安装到裸设备上)。还有一个功能SCAN(Single Client Access Name)即单客户端访问名称而且该功能包括了Failover故障自动切换功能,在访问集群是只写一个SCAN名称就可以了,不需要象以前要把所有节点的VIP写在应用程序的配置文件里面了,这样就大大方便了客户端程序对RAC系统的访问,但该功能需要DNS服务器的支持。SCAN配置也可以采用hosts文件作解析。
如果系统配置了NTP服务,CTSS服务会处于观察者模式,配置NTP具体步骤可参考AIX服务配置。
3 安装Grid
3.1 Grid安装前检查
切换到grid用户并执行安装前检查,进入grid安装目录:
$./runcluvfy.sh stage -pre crsinst -n ibmdb1,ibmdb2 -fixup -verbose
检查失败项并进行相应的调整。
安装提示过程中发现几个失败:
1、 swap需要4G以上。
2、 需要oinstall组
3、 有几个系统补丁未打
3.2 执行rootpre.sh
1、以root身份登录在所有节点执行:slibclean
2、以root身份登录在所有节点执行grid软件下的:rootpre.sh
3.3 安装grid
使用xmanager登录,
$ export DISPLAY=192.168.18.12:0.0 #安装终端IP
在上传的grid安装文件目录下,键入./runInstaller开始安装:
Next:
在上图选择产品语言时加上中文件语句,否则在使用EM时如果你的IE优先使用中文的话会出乱码的:
注:在上图的SCAN name中,如果有DNS,则填写DNS中的scan name,如果没有配置DNS,则填写在/etc/hosts中定义的scan名字(本例中的抓图为第一次安装时图,当时建立了DNS服务器,第二次安装时就使用了/etc/hosts中的scan名字)。
在配置网络增强界面时,规划好的集群名、SCAN名,SCAN端口,不勾选Configure GNS(GNS需要DHCP服务器配合,本次部署无DHCP服务器):
本例中我们使用的是/etc/hosts解析,所以直接填写scan,即可。
若是有DNS解析,这里填上在DNS服务器中建立的SCAN.IBM.COM的名称。
Next:
配置集群中的节点信息:
1、配置集群中的节点信息,
2、选择 SSH connectivity选项,输入grid用户的密码,然后点setup选项,oracle会自动配置ssh互信:
在进行grid 的SSH配置时出过两个报错:
1、 提示在ibmdb1上未找到/usr/local/bin/ssh-keygen,这个文件本身就不在这里,原因前面曾经提到,寻找路径与实际路径不符。既然提示要在这里找,建一个这个路径,然后将ssk-keygen拷贝至这里。
2、 提示ibmdb2没有/bin/bash,检查发现ibmdb2果然没有这个,将ibmdb1的拷贝过来。
bash-3.00# scp /bin/bash ibmdb2:/bin/
这里如果DNS没有配置好,会报scan vip出错。
指定网络接口,public和private.
这里选择ASM存储:
创建ASM磁盘组OCRVOTE,用于放置OCR、VOTE文件:
磁盘冗余类型选择:Normal,提示最少需要3块,这里我们选择disk3、5、6三块。
Next:
设置一致的密码,这里我们设置为:oracle。密码不要忘记,在建立RAC集群数据库时还需要。
会提示密码过于简单,不用理会。Next:
上图指定特权操作系统组:Next
上图指定oracle base和software install目录,按我们的规划要求进行调整:
Oracle Base:/u01/grid
Software Location:/u01/app
安装不通过,将software location改为/u01/db后可以继续,/u01/db的属主是oracle:dba,不解
创建临时目录inventory:
预安装检查,如下:
检查结果:
Swap空间不足,以及有几个补丁未打。
检查发现ibmdb2忘了增加swap,添加至3G。
其余补丁暂时未打,
其中第四个提示在ibmdb1上有0级别的用户不止root一个,检查发现在ibmdb1上有人建立了一个dylan的0级用户,在/etc/passwd中将其禁用后重新检查,此问题不在。
尝试忽略其它Failed继续安装。
点击:Finish 开始安装:
安装时间较长,达数十分钟。
在两个节点上分别按提示的顺序执行oraInstRoot.sh和root.sh,注意一定要按提示的顺序执行。若是在node1上安装,则执行顺序:
Node1:
#/../orainstRoot.sh
Node2:
/../orainstRoot.sh
Node1:
/../root.sh
Node2:
/../root.sh
完成后点击OK:
又有一个报错,忽略:
完装完成后点击:close。
删除grid:
若安装出错,需要删除重新安装时,可以通过deinstall进行干净卸载。
3.4 Clusterware安装校验
查看集群启动了哪些服务,以grid用户执行crs_stat –t –v 命令:
如果看到启动的许多相应的服务,则显示正常。
Ibmdb1:
# ./crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.DATA.dg ora....up.type ONLINE ONLINE ibmdb1
ora....N1.lsnr ora....er.type ONLINE ONLINE ibmdb1
ora.asm ora.asm.type ONLINE ONLINE ibmdb1
ora.eons ora.eons.type ONLINE ONLINE ibmdb1
ora.gsd ora.gsd.type OFFLINE OFFLINE
ora....SM1.asm application ONLINE ONLINE ibmdb1
ora.ibmdb1.gsd application OFFLINE OFFLINE
ora.ibmdb1.ons application ONLINE ONLINE ibmdb1
ora.ibmdb1.vip ora....t1.type ONLINE ONLINE ibmdb1
ora....SM2.asm application ONLINE ONLINE ibmdb2
ora.ibmdb2.gsd application OFFLINE OFFLINE
ora.ibmdb2.ons application ONLINE ONLINE ibmdb2
ora.ibmdb2.vip ora....t1.type ONLINE ONLINE ibmdb2
ora....network ora....rk.type ONLINE ONLINE ibmdb1
ora.oc4j ora.oc4j.type OFFLINE OFFLINE
ora.ons ora.ons.type ONLINE ONLINE ibmdb1
ora.scan1.vip ora....ip.type ONLINE ONLINE ibmdb1
#
Ibmdb2:
# ./crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.DATA.dg ora....up.type ONLINE ONLINE ibmdb1
ora....N1.lsnr ora....er.type ONLINE ONLINE ibmdb1
ora.asm ora.asm.type ONLINE ONLINE ibmdb1
ora.eons ora.eons.type ONLINE ONLINE ibmdb1
ora.gsd ora.gsd.type OFFLINE OFFLINE
ora....SM1.asm application ONLINE ONLINE ibmdb1
ora.ibmdb1.gsd application OFFLINE OFFLINE
ora.ibmdb1.ons application ONLINE ONLINE ibmdb1
ora.ibmdb1.vip ora....t1.type ONLINE ONLINE ibmdb1
ora....SM2.asm application ONLINE ONLINE ibmdb2
ora.ibmdb2.gsd application OFFLINE OFFLINE
ora.ibmdb2.ons application ONLINE ONLINE ibmdb2
ora.ibmdb2.vip ora....t1.type ONLINE ONLINE ibmdb2
ora....network ora....rk.type ONLINE ONLINE ibmdb1
ora.oc4j ora.oc4j.type OFFLINE OFFLINE
ora.ons ora.ons.type ONLINE ONLINE ibmdb1
ora.scan1.vip ora....ip.type ONLINE ONLINE ibmdb1
#
4 安装Database
这里只安装数据库软件,之后再用dbca命令建立集群数据库。安装完database软件后,还要建立ASM磁盘组。
使用oracle用户通过xmanager登录进行安装。
选择不接收更新,Next:
选择只安装数据库软件,Next:
选择real application cluster database installlation,然后选中所有的节点,Next:
在上图中,需要进行oracle用户的ssh信任配置,如果在前面没有配置好,可以在这里进行配置。Test一下是否正常,Next:
选择语言,添加Simplitied Chinese,Next:
选择数据库版本:Enterprise Edition,Next:
选择安装目录,Next:
如果环境变量设置正确,上面会自动填充,否则的话需要手工调整,这里的调整要和oracle用户的环境变量保持一致,Next:
注:这里原定使用的/u01/db用来进行grid程序的安装目录了,所以这里只有调整,但是/u01/db安装完grid后,目录权限自动变成了root:dba,不知道有没有什么影响。
由于我们这里只建了一个dba组,所以,Next:
开始执行安装前检查,
有几个报错,由于crs安装完成后有报错,现在尝试忽略继续安装。
Next,开始进行安装:
此安装过程较为耗时。
安装进度完成后,提示需要运行相关脚本,按要求的顺序执行,正确执行完毕后点击:OK
关闭窗口,完成database的安装。
5 创建ASM磁盘组
在建库前需要先创建存储数据文件的ASM磁盘组。以grid用户通过xmanager登录,执行asmca命令:
$asmca
切换到Disk Group界面,点击Create:
按我们的规划,选择rhdisk2、rhdisk4组成ASMORACLE磁盘组。
完成后如图:
其中DATA磁盘组是我们安装grid是建立的给OCR和VOTEDISK使用的,ASMORACLE是准备用来安装数据库的。
6 DBCA创建数据库
使用oracle用户,通过xmanager登录运行dbca来建立RAC集群数据库。建库时可以先不配置企业管理器(Enterprise Manager),等建库完成后,执行脚本配置EM。原因是在安装过程中配置EM导致建库时间很长,如果RAC节点的主机性能不好,可能导致安装程序的界面停止响应。本次安装就是因为选择了配置Enterprise Manager,结果从早上11点一直安装到18点才结束。
$export DISPLAY=192.168.18.12:0.0
$dbca
当然选择建立RAC数据库,Next:
选择自定议,Next:
输入我们oracle环境变量中配置的Databse Name,然后选中所有节点,Next:
默认选择EM:
Next:
所有用户配置一个密码:oracle 然后Next:
选择刚才建立的ASMORACLE磁盘组:
指定ASMSNMP密码,暂时不知道有何用,配置密码:oracle,点击OK:
配置闪回,默认选择OCR的ASM磁盘组,勾选启用归档,Next:
进入数据库初始化参数配置:
Memory:
Block Size:
字符集:
Connection Mode:
Next:
Next:
Finish
生成建库脚本。
开始一个较为漫长的建库过程。
7 安装完成后
7.1 备份root.sh
官方建议在安装完成后要备份root.sh脚本文件。因为如果在oracle home目录中又安装其它oracle的产品,安装时OUI会升级已存在的root.sh文件。如果需要root.sh内的原始信息,就可以在备份中找到。
$ cd $ORACLE_HOME
$ cp root.sh root.sh.bak
7.2 重新编译全部PL/SQL modules
官方建议在建立或升级数据库后执行utlrp.sql脚本。这个脚本重新编译全部为不可用状态的PL/SQL module,包括包(packages)、存储过程(procedures)、类型(types)。这是一个可选操作,但oracle官方建议在安装后立即执行该脚本。
以oracle用户执行以下命令:
$ sqlplus “/as sysdba”
SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql
7.3 备份spfile文件
$ sqlplus / as sysdba
SQL> create pfile=’/home/oracle/initorcl1.ora’ from spfile=’+OCRVOTE/orcl/spfileorcl.ora’;
7.4 RAC集群系统维护命令
$ srvctl add –h #给集群添加对象,比较重要的如:service, srvpool等等
$ srvctl remove –h #删除集群的对象
$ srvctl modify –h #修改集群的对象
$ srvctl config –h #查看集群内对象的配置信息
$ srvctl status –h #查看集群内对象的状态信息
$ srvctl relocate –h #把集群的对象重定位到其它实例节点,如oc4j,gns只在一个实例节点上有效,使用该命令可以把对象转移到其它实例节点
$ srvctl enable –h #把集群内已经存在的对象置于可用状态
$ srvctl disable –h #把集群内已经存在的对象置于不可用状态
$ srvctl start –h #启动集群内已经存在的对象
$ srvctl stop –h #停止集群内已经存在的对象
$ srvctl config database #查看全部安装集群数据库名称
$ srvctl config database –d ytdb #查看指定的集群数据库的配置信息,以环境变量中为准
$ srvctl config nodeapps –a –g –s –e #显示节点应用程序的配置
7.5 启动和关闭集群系统命令
7.5.1 启动集群件和集群数据库
集群系统默认是自动启动的,手工启动命令如下:
# cd /u01/app/11.2/grid/bin #视安装路径而定,可查看grid环境变量
# ./crsctl start cluster
也可以以grid用户执行以下命令(不过11.2版本中不建议使用):
$ su - grid
$ crs_start –all
启动集群数据库
$ su – oracle
$ srvctl start database –d ytdb #启动全部实例
$ srvctl start instance –d ytdb –n ibmnode1 #节点1上启动数据库实例
$ srvctl start instance –d ytdb –n ibmnode2 #节点2上启动数据库实例
7.5.2 关闭RAC集群数据库和集群件
先关闭集群数据库
$ su – oracle
$ srvctl stop database –d ytdb
再关闭集群件(root用户)
# cd /u01/app/11.2/grid/bin #视安装路径而定,可查看grid环境变量
# ./crsctl stop cluster
------------------------
安装完成后分别登录两个节点查看监听:
hostname:/u01/oracle/db/product/11.2/network/admin$lsnrctl status
LSNRCTL for IBM/AIX RISC System/6000: Version 11.2.0.1.0 - Production on 12-NOV-2010 18:09:14
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for IBM/AIX RISC System/6000: Version 11.2.0.1.0 - Production
Start Date 12-NOV-2010 11:20:55
Uptime 0 days 6 hr. 48 min. 19 sec
Trace Level off
Security ON: Local OS Authentication
SNMP ON
Listener Parameter File /u01/db/network/admin/listener.ora
Listener Log File /u01/grid/diag/tnslsnr/ibmdb1/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.17.237)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.17.236)(PORT=1521)))
Services Summary...
Service "+ASM" has 1 instance(s).
Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "ytdb" has 1 instance(s).
Instance "ytdb1", status READY, has 1 handler(s) for this service...
Service "ytdbXDB" has 1 instance(s).
Instance "ytdb1", status READY, has 1 handler(s) for this service...
The command completed successfully
查看tnsnames.ora
YTDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ytdb)
)
)
社区会员分享,点击阅读原文可下载原文档
长按二维码关注“AIX专家俱乐部”公众号